/*
 * Copyright 2006-2023 ahtelit.com, All Rights Reserved.
 */

package com.telit.firecommand.service;

import com.telit.common.entity.PageData;
import com.telit.firecommand.model.cityVisualization.*;

import java.util.List;
import java.util.Map;


/**
 * 市级可视化Service
 *
 * @author yuezhuang
 * @since 2023-03-16
 */
public interface CityVisualizationService {

    /**
     * 火情统计
     *
     * @param qryFireCountRequest qryFireCountRequest
     *
     * @return QryFireCountModel
     */
    QryFireCountModel qryFireCount(QryFireCountRequest qryFireCountRequest);

    /**
     * 火情趋势
     *
     * @param qryFireTrend30DayRequest qryFireTrend30DayRequest
     *
     * @return QryFireTrend30DayResult
     */
    List<QryFireTrend30DayModel> qryFireTrend30Day(QryFireTrend30DayRequest qryFireTrend30DayRequest);

    /**
     * 火灾统计
     *
     * @param qryFireTrend1YearRequest qryFireTrend1YearRequest
     *
     * @return QryFireTrend1YearResult
     */
    List<Map<String, List<QryFireTrend1YearResult.LevelCount>>> qryFireTrend1Year(
            QryFireTrend1YearRequest qryFireTrend1YearRequest);

    /**
     * 火情列表
     *
     * @param qryFireListRequest qryFireListRequest
     *
     * @return QryFireListModel
     */
    PageData<List<QryFireListModel>> qryFireList(QryFireListRequest qryFireListRequest);

    /**
     * 火情详情
     *
     * @param id id
     *
     * @return QryFireDetailModel
     */
    QryFireDetailModel qryFireDetail(Long id);

    /**
     * 实时视频流
     *
     * @param fireId 火情id
     *
     * @return QryCameraUrlModel
     */
    QryCameraUrlModel qryCameraUrl(Long fireId, String cameraId, Integer type);

    /**
     * 历史视频流
     *
     * @param qryCameraHistoryUrlRequest qryCameraHistoryUrlRequest
     *
     * @return QryCameraHistoryUrlModel
     */
    QryCameraHistoryUrlModel qryCameraHistoryUrl(QryCameraHistoryUrlRequest qryCameraHistoryUrlRequest);

    /**
     * 物资统计
     *
     * @param qryResourceCountRequest qryResourceCountRequest
     *
     * @return QryResourceCountModel
     */
    List<QryResourceCountModel> qryResourceCount(QryResourceCountRequest qryResourceCountRequest);

    /**
     * 物资列表
     *
     * @param qryResourceListRequest qryResourceListRequest
     *
     * @return QryResourceListModel
     */
    PageData<List<QryResourceListModel>> qryResourceList(QryResourceListRequest qryResourceListRequest);

    /**
     * 物资详情
     *
     * @param tableId tableId
     * @param id      id
     *
     * @return QryResourceDetailModel
     */
//    QryResourceDetailModel qryResourceDetail(String tableId, String id);
    Map<String, Object> qryResourceDetail(String tableId, String id);

    /**
     * 设施统计
     *
     * @param qryResourceEquipmentCountRequest qryResourceEquipmentCountRequest
     *
     * @return QryResourceEquipmentCountModel
     */
    List<QryResourceEquipmentCountModel> qryResourceEquipmentCount(
            QryResourceEquipmentCountRequest qryResourceEquipmentCountRequest);

    /**
     * 设施列表
     *
     * @param qryResourceEquipmentListRequest qryResourceEquipmentListRequest
     *
     * @return QryResourceEquipmentListModel
     */
    PageData<List<QryResourceEquipmentListModel>> qryResourceEquipmentList(
            QryResourceEquipmentListRequest qryResourceEquipmentListRequest);

    /**
     * 设施详情
     *
     * @param tableId tableId
     * @param id      id
     *
     * @return QryResourceEquipmentDetailModel
     */
//    QryResourceEquipmentDetailModel qryResourceEquipmentDetail(String tableId, String id);
    Map<String, Object> qryResourceEquipmentDetail(String tableId, String id);

    /**
     * 物资分类
     *
     * @param qryResourceCatRequest qryResourceCatRequest
     *
     * @return QryResourceCatModel
     */
    List<QryResourceCatModel> qryResourceCat(QryResourceCatRequest qryResourceCatRequest);

    /**
     * 设备分类
     *
     * @param qryEquipmentCatRequest qryEquipmentCatRequest
     *
     * @return QryEquipmentCatModel
     */
    List<QryEquipmentCatModel> qryEquipmentCat(QryEquipmentCatRequest qryEquipmentCatRequest);

}
